RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存 |
您所在的位置:网站首页 › linux dns刷新 › RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存 |
RHEL CentOS Debian Ubuntu 如何刷新 DNS 缓存 全文:如何刷新 DNS 缓存 (macOS, Linux, Windows) Unix Linux Windows 如何刷新 DNS 缓存 (macOS, FreeBSD, RHEL, CentOS, Debian, Ubuntu, Windows) 请访问原文链接:https://sysin.org/blog/how-to-flush-dns-cache/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org 刷新或者清除 DNS 缓存,通常是因为有过时的 DNS 记录,需要立刻从服务端重新获取更新,常见于安全要求或者测试调试等场景。 Linux 可以运行 dnsmasq、nscd、unbound 或者 systemd-resolved 作为名称服务缓存守护进程 (sysin)。 dnsmasq如果你的 DNS 服务器是用 dnsmasq 实现的,用下面这个命令: service dnsmasq restart如果 dnsmasq 服务不存在,先安装 dnsmasq,命令如下: RHEL 及其兼容发行版:sudo yum install dnsmasqDebian 及其兼容发行版:sudo apt install dnsmasq或者其他发行版对应的软件包管理命令注:DNSmasq 是一个轻巧的,容易使用的 DNS 服务工具,它可以应用在内部网和 Internet 连接的时候的 IP 地址 NAT 转换,也可以用做小型网络的 DNS 服务。 nscd如果是清除 nscd 上的 Cache,可重新启动 nscd 服务来达成清除 DNS Cache 的效果: service nscd restart # 或是 service nscd reload如果 nscd 服务不存在,先安装 nscd,命令如下: RHEL 及其兼容发行版:sudo yum install nscdDebian 及其兼容发行版:sudo apt install nscd或者其他发行版对应的软件包管理命令 unboudunbound 使用 unbound-control 命令来管理 DNS 缓存: # 刷新所有缓存 unbound-control flush all # 更多命令查看帮助 unbound-control -h如果 unbound-control 无法执行,先安装 unbound,命令如下: RHEL 及其兼容发行版:sudo yum install unboundDebian 及其兼容发行版:sudo apt install unbound或者其他发行版对应的软件包管理命令 systemd-resolved使用 resolvectl 命令刷新 DNS 缓存: # Step 1. 查看 DNS 缓存状况 sudo resolvectl statistics # Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行 sudo resolvectl flush-caches # Step 3. 正在查看验证结果 (sysin) sudo resolvectl statistics如果 resolvectl 无法执行,先安装 systemd-resolved,命令如下: RHEL 及其兼容发行版:sudo yum install systemd-resolvedDebian 及其兼容发行版:sudo apt install systemd-resolved或者其他发行版对应的软件包管理命令 BIND (服务端,与上述客户端 DNS 缓存不同)如果是清除 BIND 服务器上的 CACHE,用这个命令: rndc flush如果 rndc 无法执行,先安装 bind,命令如下: RHEL 及其兼容发行版:sudo yum install bindDebian 及其兼容发行版:sudo apt install bind9或者其他发行版对应的软件包管理命令以下对几个主流发行版单独说明。 2. RHEL包括其兼容发行版:CentOS 及 AlmaLinux、Rocky Linux、Oracle Linux RHEL 及其兼容发行版,默认不启用 DNS 查询缓存。 参看:Best practice for DNS caching in RHEL 常见解决方案: dnsmasqnscd(未来版本可能会移除)unboundsystemd-resolveddnsmasq 使用 dnsmasq 来启用 dns 缓存: yum -y install dnsmasq systemctl enable --now dnsmasq清除缓存即重启 dnsmasq 服务: systemctl restart dnsmasqnscd 使用 nscd 来启用 dns 缓存: yum -y install nscd systemctl enable --now nscd清除缓存即重启 nscd 服务: systemctl restart nscd 3. UbuntuUbuntu 默认运行 systemd-resolved 服务用于名称服务缓存,使用 resolvectl 命令调用 systemd-resolved.service 解析主机名、IP 地址、域名、DNS 资源记录和服务。 systemd-resolved.service 默认启用: systemctl is-enabled systemd-resolved.service enabled刷新 DNS 缓存: # Ubuntu 22.04 示例 # Step 1. 查看 DNS 缓存状况 sudo resolvectl statistics # Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行 sudo resolvectl flush-caches # Step 3. 正在查看验证结果 (sysin) sudo resolvectl statistics备注:Ubuntu 也可以配置使用 nscd 或者 dnsmasq。 注意:在旧版本中 resolvectl 命令曾经为 systemd-resolve,现已废弃。命令参数参数略有差异。 # Ubuntu 20.04.5 同时支持 resolvectl 和 systemd-resolve # Step 1. 查看 DNS 缓存状况 sudo systemd-resolve --statistics # Step 2. 清除 DNS 缓存,systemd-resolve daemon 默认在所有的 Ubuntu 系统上运行 sudo systemd-resolve --flush-caches # Step 3. 正在查看验证结果 (sysin) sudo systemd-resolve --statistics 4. DebianDebian 默认没有启用 DNS 缓存机制(基本系统)。可以配置使用 systemd-resolved.service 来启用。 以下为 Debian 12 示例。 启用 systemd-resolved.serivce: sudo apt install systemd-resolved查看服务已经启用: systemctl is-enabled systemd-resolved.service enabled刷新 DNS 缓存: # Step 1. 查看 DNS 缓存状况 sudo resolvectl statistics # Step 2. 清除 DNS 缓存,systemd-resolved daemon 默认在所有的 Ubuntu 系统上运行 sudo resolvectl flush-caches # Step 3. 正在查看验证结果 (sysin) sudo resolvectl statistics备注:Debian 也可以配置使用 nscd 或者 dnsmasq。 上述操作通常也和浏览器刷新 DNS 缓存配合使用。 如何清除浏览器的 DNS 缓存 (Chrome, Firefox, Safari) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |